<template>
	<div class="Header" :class="{ 'content-collapse': sidebar.collapse }">
		<!-- 折叠按钮 -->
		<div class="collapse-btn" @click="collapseChage">
			<el-icon v-if="sidebar.collapse"><Expand /></el-icon>
			<el-icon v-else><Fold /></el-icon>
		</div>
		<div class="logo">家庭医生健康管理系统</div>
		<div class="header-right">
			<div class="header-user-con">
				<!-- 消息中心 -->
				<div class="btn-bell" @click="router.push('/tabs')">
					<el-tooltip effect="dark" :content="message.number ? `有${message.number}条未读消息` : `消息中心`" placement="bottom">
						<el-icon><Bell /></el-icon>
					</el-tooltip>
					<span class="btn-bell-badge" v-if="message.number"></span>
				</div>
				<!-- 用户头像 -->
				<el-avatar class="user-avator" :size="30" :src="imgurl.url" />
				<!-- 用户名下拉菜单 -->
				<el-dropdown class="user-name" trigger="click" @command="handleCommand">
					<span class="el-dropdown-link">
						{{ username }}
						<el-icon class="el-icon--right">
							<arrow-down />
						</el-icon>
					</span>
					<template #dropdown>
						<el-dropdown-menu>
							<a href="https://github.com/lin-xin/vue-manage-system" target="_blank">
								<el-dropdown-item>项目仓库</el-dropdown-item>
							</a>
							<el-dropdown-item command="user">个人中心</el-dropdown-item>
							<el-dropdown-item divided command="loginout">退出登录</el-dropdown-item>
						</el-dropdown-menu>
					</template>
				</el-dropdown>
			</div>
		</div>
	</div>
</template>
<script setup lang="ts">
import { onMounted, ref ,computed ,watch, toRaw, reactive } from 'vue';
import { useSidebarStore } from '../store/sidebar.js';
import { useRouter } from 'vue-router';
import { exitApi } from '../api/manager';
import { useTagsStore } from '../store/tags';
import { useGlobleStore } from '../store/globle';
import { useStore } from 'vuex';


const globle = useGlobleStore()
const username: string | null = globle.getUsrname();
const message = reactive({
	number:0
});
const router = useRouter();
const tags = useTagsStore();
const imgurl = reactive({
	url:''
})

let {state,commit,getters} = useStore()

let name = computed(()=>{
	imgurl.url = state.iotData
	if(state.iotData.target == undefined) imgurl.url = globle.getAvater()
	return state.iotData
})

let Msg = computed(()=>{
	message.number = state.msg
	if(state.msg == -1)message.number = globle.getMsgNum()
	//else globle.setMsgNum(state.msg)
	return state.msg
})

watch(Msg ,(newVal,OldVal) => { /* */ },{immediate:true,deep:true})
watch(name,(newVal,oldVal) => { /* */ },{immediate:true,deep:true})

//console.log("刷新:",imgurl.url)

if(!username){
	router.push('/Login');
}

const sidebar = useSidebarStore();
// 侧边栏折叠
const collapseChage = () => {
	sidebar.handleCollapse();
};

onMounted(() => {
	if (document.body.clientWidth < 1500) {
		collapseChage();
	}
});

// 用户名下拉菜单选择事件
const handleCommand = (command: string) => {
	if (command == 'loginout') {
		exitApi().then(res=>{
			//退出登录
			sessionStorage.clear()
			tags.clearTags()
			localStorage.setItem("ms_type",globle.getUsrtype())
			globle.clearData()
			router.push('/login');
		})
		.catch(err=>{
			console.log("退出失败")
		})
		
	} else if (command == 'user') {
		router.push('/Main');
	}
}
</script>
<style scoped>
.Header {
	position: absolute;
	box-sizing: border-box;
	width: -webkit-fill-available;
	left:225px;
	top:5px;
	right: 5px;
	height: 70px;
	font-size: 22px;
	color: #fff;
	background: linear-gradient(to right bottom,rgba(255,255,255,0.6),rgba(255,255,255,0.3));
	/* background-color: #3ebe8b; */
	background-color: #084779;
	transition: left .3s ease-in-out;
	border-radius: 10px;
}
.collapse-btn {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
	float: left;
	padding: 0 21px;
	cursor: pointer;
}

.content-collapse {
    left: 70px;
}

.Header .logo {
	float: left;
	width: 250px;
	line-height: 70px;
}
.header-right {
	float: right;
	padding-right: 20px;
}
.header-user-con {
	display: flex;
	height: 70px;
	align-items: center;
}
.btn-fullscreen {
	transform: rotate(45deg);
	margin-right: 5px;
	font-size: 24px;
}
.btn-bell,
.btn-fullscreen {
	position: relative;
	width: 30px;
	height: 30px;
	text-align: center;
	border-radius: 15px;
	cursor: pointer;
	display: flex;
	align-items: center;
}
.btn-bell-badge {
	position: absolute;
	right: 4px;
	top: 0px;
	width: 8px;
	height: 8px;
	border-radius: 4px;
	background: #f56c6c;
	color: #fff;
}
.btn-bell .el-icon-lx-notice {
	color: #fff;
}
.user-name {
	margin-left: 10px;
}
.user-avator {
	margin-left: 20px;
}
.el-dropdown-link {
	color: #fff;
	cursor: pointer;
	display: flex;
	align-items: center;
}
.el-dropdown-menu__item {
	text-align: center;
}
</style>
